package com.css.fxfzxczh.modules.fastDisasterAnalysis.fastSeismicInfluence.service;

import com.css.fxfzxczh.base.response.RestResponse;
import com.css.fxfzxczh.modules.fastDisasterAnalysis.fastSeismicInfluence.entity.FastSeismicInfluence;
import com.css.fxfzxczh.modules.fastDisasterAnalysis.fastSeismicInfluence.entity.FastSiVersion;
import com.css.fxfzxczh.modules.fastDisasterAnalysis.fastSeismicInfluence.entity.IntensityAttenuation;
import com.css.fxfzxczh.modules.fastDisasterAnalysis.fastSeismicInfluence.vo.IntensityAttenuationVO;

import java.util.List;
import java.util.Map;

/**
 * @Description: fxfzxczh
 * @Author: zyt
 * @CreateDate: 2023/7/12 11:00
 */
public interface IntensityAttenuationService {
    //快速生成地震影响场
    public RestResponse countEqIntensity(FastSiVersion fastSiVersion, String modelId, IntensityAttenuation modelById);

    //保存快速生成地震影响场空间数据
    public int saveFastSeismicInfluence(FastSeismicInfluence entity);

    //保存快速生成地震影响场版本信息
    public int saveFastSiVersion(FastSiVersion entity);

    //更新快速生成地震影响场版本信息（更新上传图片附件id）
    public void updateFastSiVersion(FastSiVersion entity);

    //删除快速生成地震影响场版本信息及地震影响场空间数据列表
    public void delFastSiVersion(String fvId);

    //根据版本ID查询地震影响场空间数据列表
    public List<FastSeismicInfluence> getFastSeismicInfluenceListByFvId(String fvId,String geom);

    //根据版本ID查询地震影响场版本信息
    public FastSiVersion getFastSiVersionByFvId(String fvId);

    //根据事件ID查询地震影响场版本信息列表
    public Map<String,Object> getFastSiVersionListByXsemId(String xsemId, int curPage, int pageSize);

    //处理空间数据，判断存在自相交则获取修复后的空间数据，否则返回原空间数据wkt
    public String getGeomValidWkt(String geomText);

    //校验空间数据是否自相交
    public String isGeomValid(String geomText);

    String getUnionGeom(String xsemId);

    String getGeom(String fsiId);

    //调查任务管理--事件的全部快速生成地震影响场版本信息设置未选择
    public void unSelectFastSiVersion(String xsemId);

    //调查任务管理--事件的1个快速生成地震影响场版本信息设置选择
    public void setSelectFastSiVersion(String fvId);

    //调查任务管理--根据事件ID查询选择的地震影响场版本信息
    public FastSiVersion getFastSiVersionByXsemId(String xsemId);

    //调查任务管理--根据事件ID删除全部新建的评估子区
    public void deleteSurTaskManageType0(String xsemId);

    //调查任务管理--根据类型查询事件的全部新建的评估子区数量
    public int countSurTaskManageByType(String xsemId,String type);

    //调查任务管理--根据事件ID、影响场ID重新选择快速生成的地震影响场并删除全部新建的评估子区
    public void setSelectFastSiVersionByXsemIdFvId(String xsemId,String fvId);

    List<IntensityAttenuationVO> getFastSeiInfAndVerListByFvId(String fvId, String geom);
}
